<?php

class News extends CI_Controller {

    function index() {

        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {

            //Загружаем отображение шапки
            $this->load->view('top');

            //Загружаем модель новостей
            $this->load->model('News_model', '', TRUE);

            //Получаем данные с БД
            $content = $this->News_model->get_last_ten_entries();

            //Генерация таблицы
            $tbl = '<table class="outtable" border="1">
                     <tr><td>id</td><td>Название</td><td>Дата добавления</td><td>&nbsp;</td><td>&nbsp;</td></tr>';
            foreach ($content as $row)
                $tbl .= '<tr><td>' . $row['news_id'] . '</td><td>' . $row['news_title'] . '</td><td>' . $row['news_date'] . '</td>
                         <td><a href="' . site_url('news/edit/' . $row['news_id']) . '">Edit</a></td>
                         <td><a href="' . site_url('news/drop/' . $row['news_id']) . '">Drop</a></td></tr>';
            $tbl .= '</table>';
            $table['table'] = $tbl;
            $table['add'] = site_url('news/add');

            //Отображаем
            $this->load->view('temp_news', $table);

            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }

    function drop($id, $drop = '0') {
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {

            //Загружаем отображение шапки
            $this->load->view('top');

            //Загружаем модель новостей
            $this->load->model('News_model', '', TRUE);

            if ($drop == '0') {
                $vdrop['ask'] = 'Удалить запись #' . $id . '?';
                $vdrop['url_yes'] = site_url('news/drop/' . $id . '/yes');
                $vdrop['url_no'] = site_url('news/drop/' . $id . '/no');
                $vdrop['drop'] = $drop;
            } elseif ($drop == 'yes') {
                $vdrop['drop'] = $drop;

                //Удалить одну запись
                $this->News_model->drop_one_entrie($id);

                redirect('/news', 'refresh');
            } else {
                $vdrop['drop'] = $drop;
                redirect('/news', 'refresh');
            }

            //Загружаем отображение удаления
            $this->load->view('temp_news_drop', $vdrop);

            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }

    function add() {
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {
            //Загружаем отображение шапки
            $this->load->view('top');

            //Загружаем библиотеку Table
            $this->load->library('table');

            //Загружаем модель новостей
            $this->load->model('News_model', '', TRUE);

            $add['form'] = form_open();
            $data = array(
                array('Название:', form_input('news_title', $this->input->post('news_title'))),
                array('Текст:', form_textarea('news_text', $this->input->post('news_text'))),
                array('', form_submit('go', 'Добавить'))
            );
            $tmpl = array(
                'table_open' => '<table class="outtable" border="0">',
                'heading_cell_start' => '<td valign="top" align="left">',
                'heading_cell_end' => '</td>',
                'cell_start' => '<td valign="top" align="left">',
                'cell_end' => '</td>',
                'cell_alt_start' => '<td valign="top" align="left">',
                'cell_alt_end' => '</td>',
            );
            $this->table->set_template($tmpl);
            $add['form'] .= $this->table->generate($data);
            $add['form'] .= form_close();

            //Обработчик событий
            if (isset($_POST['news_title'])) {
                if ($this->input->post('news_title') == FALSE)
                    $add['error'] = 'Не заполнено поле "Название".';
                elseif ($this->input->post('news_text') == FALSE)
                    $add['error'] = 'Не заполнено поле "Текст".';
                else {
                    $data = array(
                        'news_title' => $this->input->post('news_title'),
                        'news_text' => $this->input->post('news_text'),
                        'news_date' => date('Y-m-d H:i:s'),
                        'news_user' => 1
                    );
                    $this->News_model->insert_one_entrie($data);
                    $add['error'] = 'Успешно записано!';
                }
            }
            else
                $add['error'] = 'Пожалуйста, заполните все поля.';

            //Загружаем отображение добавления
            $this->load->view('temp_news_add', $add);

            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }

    function edit($id) {
        $auth = $this->im_auth->auth_check(); //проверяем авторизован ли пользователь
        if ($auth != true) {
            redirect(site_url('/welcome/login'));
        } else {
            //Загружаем отображение шапки
            $this->load->view('top');

            //Загружаем модель новостей
            $this->load->model('News_model', '', TRUE);

            //Загружаем библиотеку Table
            $this->load->library('table');

            //Получение данных из БД
            $content = $this->News_model->get_one_entrie($id);

            if (!isset($_POST['news_title'])) {
                $news_title = $content[0]['news_title'];
                $news_text = $content[0]['news_text'];
            } else {
                $news_title = $this->input->post('news_title');
                $news_text = $this->input->post('news_text');
            }

            //Обработчик событий
            if (isset($_POST['news_title'])) {
                if ($this->input->post('news_title') == FALSE)
                    $show['error'] = 'Не заполнено поле "Название".';
                elseif ($this->input->post('news_text') == FALSE)
                    $show['error'] = 'Не заполнено поле "Текст".';
                else {
                    $data = array(
                        'news_title' => $this->input->post('news_title'),
                        'news_text' => $this->input->post('news_text'),
                    );
                    $this->News_model->update_one_entrie($id, $data);
                    $show['error'] = 'Успешно записано!';
                }
            }
            else
                $show['error'] = 'Отредактируйте требуемые поля.';
            
            $tmpl = array(
                'table_open' => '<table class="outtable" border="0">',
                'heading_cell_start' => '<td valign="top" align="left">',
                'heading_cell_end' => '</td>',
                'cell_start' => '<td valign="top" align="left">',
                'cell_end' => '</td>',
                'cell_alt_start' => '<td valign="top" align="left">',
                'cell_alt_end' => '</td>',
            );
            $show['form'] = form_open();
            $data = array(
                array('Название:', form_input('news_title', $news_title)),
                array('Текст:', form_textarea('news_text', $news_text)),
                array('', form_submit('go', 'Редактировать'))
            );

            $this->table->set_template($tmpl);
            $show['form'] .= $this->table->generate($data);
            $show['form'] .= form_close();

            $show['id'] = $id;

            //Загружаем отображение редактирования
            $this->load->view('temp_news_edit', $show);

            //Загружаем отображение подвала 
            $this->load->view('bottom');
        }
    }

}

?>
